﻿using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;


namespace ECommerce.DAO.SQL.Comunicaciones
{
    public class Teléfono
    {
        //Select Methods Helpers
        public static ECommerce.Model.Comunicaciones.Teléfono[] GetTeléfonos(string StoreProcedure, ECommerce.DAO.SQL.Parámetro[] Parámetros)
        {
            ECommerce.Model.Comunicaciones.Teléfono Teléfono = new ECommerce.Model.Comunicaciones.Teléfono();
            Type DynamicType = Teléfono.GetType();
            return ECommerce.DAO.SQL.Comunicaciones.Teléfono.GetTeléfonosFromObjects(ECommerce.DAO.SQL.SqlHelper.Get(StoreProcedure, Parámetros, DynamicType));
        }
        public static ECommerce.Model.Comunicaciones.Teléfono[] GetTeléfonosFromObjects(ECommerce.Model.Objeto[] Objetos)
        {
            List<ECommerce.Model.Comunicaciones.Teléfono> result = new List<ECommerce.Model.Comunicaciones.Teléfono>();
            ECommerce.Model.Comunicaciones.Teléfono Teléfono;
            foreach (ECommerce.Model.Objeto Objeto in Objetos)
            {
                Teléfono = new ECommerce.Model.Comunicaciones.Teléfono();
                Teléfono = (ECommerce.Model.Comunicaciones.Teléfono)Objeto;
                if (Teléfono != null)
                    if (Teléfono.Id != 0)
                        result.Add(Teléfono);
            }
            return result.ToArray();
        }

        //Select Methods
        public static ECommerce.Model.Comunicaciones.Teléfono GetTeléfonoById(int Id)
        {
            List<ECommerce.DAO.SQL.Parámetro> Parámetros = new List<ECommerce.DAO.SQL.Parámetro>();
            ECommerce.DAO.SQL.Parámetro Parámetro = new ECommerce.DAO.SQL.Parámetro("@Id", System.Data.SqlDbType.BigInt, Id);
            Parámetros.Add(Parámetro);
            ECommerce.Model.Comunicaciones.Teléfono[] Comunicaciones = ECommerce.DAO.SQL.Comunicaciones.Teléfono.GetTeléfonos("GetTeléfonoById", Parámetros.ToArray());
            if (Comunicaciones != null)
                if (Comunicaciones.Length > 0)
                    return Comunicaciones[0];
            return null;
        }
        public static ECommerce.Model.Comunicaciones.Teléfono[] GetTeléfonosDelSistema()
        {
            List<ECommerce.DAO.SQL.Parámetro> Parámetros = new List<ECommerce.DAO.SQL.Parámetro>();
            return ECommerce.DAO.SQL.Comunicaciones.Teléfono.GetTeléfonos("GetTeléfonoesDelSistema", Parámetros.ToArray());
        }
        public static ECommerce.Model.Comunicaciones.Teléfono[] GetTeléfonosByPersonaId(int IdPersona)
        {
            List<ECommerce.DAO.SQL.Parámetro> Parámetros = new List<ECommerce.DAO.SQL.Parámetro>();
            ECommerce.DAO.SQL.Parámetro Parámetro = new Parámetro("@Id", System.Data.SqlDbType.BigInt, IdPersona);
            Parámetros.Add(Parámetro);
            return ECommerce.DAO.SQL.Comunicaciones.Teléfono.GetTeléfonos("GetTeléfonosByPersonaId", Parámetros.ToArray());
        }

        //Insert Methods
        public static int SetTeléfono(ECommerce.Model.Comunicaciones.Teléfono Teléfono)
        {
            List<ECommerce.DAO.SQL.Parámetro> Parámetros = new List<ECommerce.DAO.SQL.Parámetro>();
            ECommerce.DAO.SQL.Parámetro Parámetro = new ECommerce.DAO.SQL.Parámetro("@Id", System.Data.SqlDbType.BigInt, Teléfono.Id);
            Parámetros.Add(Parámetro);
            return ECommerce.DAO.SQL.SqlHelper.Insert("SetTeléfono", Parámetros.ToArray());
        }
        public static void AddTeléfonoToPersona(ECommerce.Model.Comunicaciones.Teléfono Teléfono, ECommerce.Model.Personas.Persona Persona)
        {
            List<ECommerce.DAO.SQL.Parámetro> Parámetros = new List<ECommerce.DAO.SQL.Parámetro>();
            ECommerce.DAO.SQL.Parámetro Parámetro = new ECommerce.DAO.SQL.Parámetro("@IdPersona", System.Data.SqlDbType.BigInt, Persona.Id);
            Parámetros.Add(Parámetro);
            Parámetro = new ECommerce.DAO.SQL.Parámetro("@IdTeléfono", System.Data.SqlDbType.BigInt, Teléfono.Id);
            Parámetros.Add(Parámetro);
            ECommerce.DAO.SQL.SqlHelper.Insert("AddTeléfonoToPersona", Parámetros.ToArray());
        }        
    }
}
